package day0721;

import java.util.*;

public class Test5 {
    public static void main(String[] args) {
       /* ArrayList<Integer> list=new ArrayList<>();
        list.add(11);
        list.add(22);
        list.add(33);

        //迭代(一个接一个操作)
        //1.用集合的iterator方法获取一个迭代器对象
        Iterator ite=list.iterator();
        //2.判断迭代器对象的下一个位置是否有元素
        while(ite.hasNext()){
            //3.用ite获取迭代器的下一个位置的元素
            Object o=ite.next();
            Integer i1=(Integer) o;
            System.out.println(i1);
        }

        Iterator<Integer>  iterator=list.iterator();
        for(;iterator.hasNext();){
            Integer i1=iterator.next();
            System.out.println(i1);
        }



        ArrayList<Student> stus=new ArrayList<>();
        stus.add(new Student("张三",1.75));
        stus.add(new Student("李四",1.65));
        stus.add(new Student("王五",1.74));

        //1.用集合的iterator()获取一个迭代器对象
        for(Iterator<Student> it=stus.iterator();  it.hasNext();  ){
            Student s=it.next();
            s.setHeight(1.8);
        }
        System.out.println(stus);

*/
        ArrayList<String> strs=new ArrayList<>();
        strs.add("AA");
        strs.add("BB");
        strs.add("CC");
        strs.add("DD");
        Iterator<String>  it2=strs.iterator();
        //在使用Iterator迭代集合的中途，不能用集合的增删元素的方法对集合进行增删元素，否则会抛出ConcurrentModificationException
        //可以用迭代器的删除方法(不会出异常)
        while(it2.hasNext()){
            String s=it2.next();
            if(s.equals("BB")){
                //strs.remove(s);
                it2.remove();
            }

        }
        System.out.println(strs);



    }//ConcurrentModificationException
}

